#define _CRT_SECURE_NO_WARNINGS 1


//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//    int n = 0;
//    cin >> n;
//    vector<int> v(n + 1);
//    for (int i = 1; i <= n; i++)
//    {
//        cin >> v[i];
//    }
//    int q = 0;
//    cin >> q;
//    while (q--)
//    {
//        int type = 0;
//        int l = 0, r = 0;
//        int x = 0, y = 0, z = 0;
//        if (type == 1)
//        {
//            cin >> l >> r;
//            for (int i = l; i <= r; i++)
//            {
//                v[i] = -v[i];
//            }
//        }
//        else
//        {
//            cin >> x >> y;
//            for (int i = 1; i <= n; i++)
//            {
//                if (v[i] == 1)
//                {
//                    if (y != 0)
//                    {
//                        y--;
//                    }
//                    else
//                    {
//                        x++;
//                        z++;
//                    }
//                }
//                else
//                {
//                    if (x != 0)
//                    {
//                        x--;
//                    }
//                    else
//                    {
//                        y++;
//                        z++;
//                    }
//                }
//            }
//            cout << z << endl;
//        }
//    }
//
//    return 0;
//}


#include<iostream>

using namespace std;

long long phi(long long n) 
{
    long long result = n;
    for (long long i = 2; i * i <= n; i++) 
    {
        if (n % i == 0) 
        {
            result -= result / i;
            while (n % i == 0) 
            {
                n /= i;
            }
        }
    }
    if (n > 1) 
    {
        result -= result / n;
    }
    return result;
}

int main()
{
    long long n = 4;
    cout << phi(n) << endl;

	return 0;
}